#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "label.h"

//Cette fonction retourne un pointeur sur le label de nom nom s'il existe dans la structure et NULL sinon
Un_label *rechercher_label(Un_prog *pprog,char *nom){
    Un_label *lab=pprog->plabel;

    while(lab!=NULL){
        if(strcmp(lab->nom_label,nom)==0){
            return lab;

        }
        lab=lab->suiv;
    }
    return NULL;
}

//Cette fonction ajoute le label de nom nom dans la structure et retourne un pointeur sur ce label
Un_label *ajouter_label(Un_prog *pprog,char *nom,Une_inst *pinst){

        Un_label *label=(Un_label*)Kmalloc(sizeof(Un_label));
        label->suiv=NULL;
        label->nom_label=Kmalloc(sizeof(char)*strlen(nom)+1);
        strcpy(label->nom_label,nom);
        label->pinst=pinst;
        Un_label *liste=pprog->plabel;
        if(liste==NULL){
            pprog->plabel=label;
        }
        else{
            while(liste->suiv!=NULL){
            liste=liste->suiv;
            }
            liste->suiv=label;
        }



    return label;
}
